package list.simple;

import list.ListNode;

/**
 * 环形链表
 * 示例 1：
 * 输入：head = [3,2,0,-4], pos = 1
 * 输出：true
 * 解释：链表中有一个环，其尾部连接到第二个节点。
 * 示例2：
 * 输入：head = [1,2], pos = 0
 * 输出：true
 * 解释：链表中有一个环，其尾部连接到第一个节点。
 * 示例 3：
 * 输入：head = [1], pos = -1
 * 输出：false
 * 解释：链表中没有环。
 *
 * 链接：https://leetcode-cn.com/problems/linked-list-cycle
 */
public class LinkedListCycle_141 {

    public boolean hasCycle(ListNode head) {
        ListNode i = head;
        ListNode j = head;
        while(j != null && j.next != null) {
            i = i.next;
            j = j.next.next;
            if (i == j)
                return true;
        }
        return false;
    }
}
